/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.marlboroug.categories;

import com.marlboroug.entity.Articles;
import com.marlboroug.entity.Categories;
import java.util.List;
import javax.ejb.Remote;


@Remote
public interface CategoriesManagerRemote {

    /** Permet de créer une catégorie
     * 
     * @param category Envoie un objet de type Categories
     * @return Un boolean pour confirmer la création
     */
    boolean create(Categories category);

    /** Permet de supprimer une catégorie
     * 
     * @param ID_categories Envoie un ID d'une catégorie
     * @return Un boolean pour confirmer la suppression
     */
    boolean delete (Long ID_categories);

    /** Permet de retourner un objet Categories en fonction d'un ID
     * 
     * @param ID_categories Un ID d'une categorie
     * @return Un objet Categories
     */
    Categories find (Long ID_categories);

    /** Permet de mettre à jour une catégorie
     * 
     * @param category Envoie un objet category
     * @return Un boolean pour confirmer la modification
     */
    boolean update (Categories category);
    
    /** Permet de retourner une liste de catégories en fonction d'un mot clés
     * 
     * @param pattern Un mot clés
     * @return Une liste de catégories
     */
    List<Categories> retrieveByName (String pattern);
    
    /** Permet de retourner une liste des catégories
     * 
     * @return Une liste des catégories
     */
    List<Categories> CategoriesFind ();
    
    /** Permet de retourner une catégorie en fonction d'un nom
     * 
     * @param pattern Un nom
     * @return Une catégorie
     */
    List<Categories> findCreateCategory (String pattern);
    
    /** Permet de retourner une liste des catégories
     * 
     * @return Une liste des catégories
     */
    List<Categories> findAll ();
}
